package com.xxr.mom.ci.common.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;
import java.util.Objects;

/**
 * 2016版 请求消息主体
 *
 * @author natsuki_kining
 */
@Data
public class InterworkingParam implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 运营商标识
     */
    @JsonProperty("OperatorID")
    @JSONField(name = "OperatorID")
    private String operatorId;
    /**
     * 参数内容
     */
    @JsonProperty("Data")
    @JSONField(name = "Data")
    private String data;
    /**
     * 时间戳
     */
    @JsonProperty("TimeStamp")
    @JSONField(name = "TimeStamp")
    private String timeStamp;
    /**
     * 自增序列
     *
     * 4位自增序列取自时间戳，同一秒内按序列自增长，新秒重计。如  0001
     */
    @JsonProperty("Seq")
    @JSONField(name = "Seq")
    private String seq;
    /**
     * 参数签名
     */
    @JsonProperty("Sig")
    @JSONField(name = "Sig")
    private String sig;

    public InterworkingParam() {
    }

    public InterworkingParam(String data) {
        this.data = data;
    }

    @JSONField(serialize = false)
    public boolean isEmpty() {
        if (StringUtils.isBlank(operatorId)) {
            return true;
        }
        if (StringUtils.isBlank(timeStamp)) {
            return true;
        }
        if (StringUtils.isBlank(seq)) {
            return true;
        }
        if (StringUtils.isBlank(sig)) {
            return true;
        }
        if (Objects.isNull(data)) {
            return true;
        }
        return false;
    }

}
